//
//  Player.h
//  PacIsBack
//
//  Created by Jérémy Brault on 14/12/09.
//  Copyright 2009 None. All rights reserved.
//

#import "CharacterProtocol.h"
#import "CharacterViewController.h"

@interface PlayerCharacter : NSObject <CharacterProtocol> {
	CharacterViewController* battleController;
	
	NSUInteger level;
	NSUInteger currentHP;
	NSUInteger maxHP;
	NSUInteger currentMP;
	NSUInteger maxMP;
	NSUInteger currentXP;
	NSUInteger strength;
	NSUInteger agility;
	NSUInteger vitality;
	NSUInteger defense;
	NSUInteger intelligence;
	NSUInteger wisdom;
	NSUInteger speed;
	NSUInteger luck;
	NSUInteger experienceReward;
	id<ExperienceTableProtocol> experienceTable;
	id<StatsTableProtocol> statsTable;
	id<SkillsGainedTableProtocol> skillsTable;
	NSString* characterType;
	id<BattleTeamProtocol> team;
	BOOL manualyPlayed;
	BOOL hasPlayed;
	BOOL selected;
	NSMutableArray* availableSkills;
}

@property (nonatomic, retain) CharacterViewController* battleController;
@property (nonatomic, assign) NSUInteger level;
@property (nonatomic, assign) NSUInteger currentHP;
@property (nonatomic, assign) NSUInteger maxHP;
@property (nonatomic, assign) NSUInteger currentMP;
@property (nonatomic, assign) NSUInteger maxMP;
@property (nonatomic, assign) NSUInteger currentXP;
@property (nonatomic, assign) NSUInteger strength;
@property (nonatomic, assign) NSUInteger agility;
@property (nonatomic, assign) NSUInteger vitality;
@property (nonatomic, assign) NSUInteger defense;
@property (nonatomic, assign) NSUInteger intelligence;
@property (nonatomic, assign) NSUInteger wisdom;
@property (nonatomic, assign) NSUInteger speed;
@property (nonatomic, assign) NSUInteger luck;
@property (nonatomic, assign) NSUInteger experienceReward;
@property (nonatomic, retain) id<ExperienceTableProtocol> experienceTable;
@property (nonatomic, retain) id<StatsTableProtocol> statsTable;
@property (nonatomic, retain) id<SkillsGainedTableProtocol> skillsTable;
@property (nonatomic, retain) NSString* characterType;
@property (nonatomic, retain) id<BattleTeamProtocol> team;
@property (nonatomic, assign) BOOL manualyPlayed;
@property (nonatomic, assign) BOOL hasPlayed;
@property (nonatomic, assign, getter=isSelected) BOOL selected;
@property (nonatomic, retain) NSMutableArray* availableSkills;

- (id)initWithType:(NSString*) type andTeam:(id<BattleTeamProtocol>) characterTeam;
- (id)initWithType:(NSString*) type;

@end
